<?php

namespace App\Models\Traits;

use App\Models\Files;
use Illuminate\Database\Eloquent\Relations\MorphOne;

/**
 * 有上传文件。
 */
trait HasFile
{
    public static function bootHasFile(): void
    {
        static::deleted(function ($model) { //删除 model 的同时，删除关联的文件
            if ($model->file && !$model->res_type) {
                $model->file->delete();
            }
        });
    }

    public function file(): MorphOne
    {
        return $this->morphOne(Files::class, 'ilk');
    }
}
